ae6731c653107ee72b4b3842bf32e6983aac0cd8,java/org/apache/jasper/compiler/Parser.java,Parser,parseTemplateText,#Node#,1280

Before Change


            } else if (ch == '\\' && !pageInfo.isELIgnored()) {
                int next = reader.nextChar();
                if (next == '$' || next == '#') {
                    if (reader.nextChar() == '{') {
                        ttext.write(next);
                        ttext.append('{');
                    } else {
                        ttext.append('\\');
                        ttext.write(next);
                        reader.pushChar();
                    }
                } else {
                    ttext.append('\\');
                    reader.pushChar();
                }
            } else if ((ch == '$' || ch == '#' && !pageInfo.isDeferredSyntaxAllowedAsLiteral()) &&
                    !pageInfo.isELIgnored()) {
                if (reader.nextChar() == '{') {
                    reader.pushChar();
                    reader.pushChar();
                    break;
                } else {
                    reader.pushChar();
                    ttext.write(ch);
                }
            } else {

After Change


        CharArrayWriter ttext = new CharArrayWriter();

        int ch = reader.nextChar();
        while (ch != -1) {
            if (ch == '<') {
                // Check for "<\%"
                if (reader.peekChar(0) == '\\' && reader.peekChar(1) == '%') {
                    ttext.write(ch);
                    // Swallow the \
                    reader.nextChar();
                    ttext.write(reader.nextChar());
                } else {
                    if (ttext.size() == 0) {
                        ttext.write(ch);
                    } else {
                        reader.pushChar();
                        break;
                    }
                }
            } else if (ch == '\\' && !pageInfo.isELIgnored()) {
                int next = reader.peekChar(0);
                if (next == '$' || next == '#') {
                    if (reader.peekChar(1) == '{') {
                        ttext.write(reader.nextChar());
                        ttext.write(reader.nextChar());
                    } else {
                        ttext.write(ch);
                        ttext.write(reader.nextChar());
                    }
                } else {
                    ttext.write(ch);
                }
            } else if ((ch == '$' || ch == '#' && !pageInfo.isDeferredSyntaxAllowedAsLiteral()) &&
                    !pageInfo.isELIgnored()) {
                if (reader.peekChar(0) == '{') {
                    reader.pushChar();
                    break;
                } else {